#!/usr/bin/env python3.11
# -*- encoding: utf-8 -*-
'''
@File    :   mixins.py
@Time    :   2024/06/17 10:44:40
@Author  :   windstarry 
@Version :   1.0
'''
# here put the import lib

from typing import Any
from django.db.models import QuerySet

from .models import MenuModel

class MenuMixin:
    request: Any
    def get_queryset(self) -> QuerySet:
        # 使用exclude方法排除status为9的数据
        return MenuModel.objects.exclude(status=9)
        

    def check_pid_status(self, id: int) -> bool:
        """
        检查给定父级ID对应的菜单项是否存在状态不为删除的情况。

        参数:
        id (int): 菜单项的父级ID。

        返回:
        bool: 如果存在状态不为删除的菜单项，则返回True；否则返回False。
        """
        # 通过查询菜单模型，排除状态为9（删除状态）的记录，然后筛选出父级ID为给定ID的记录，最后检查是否存在这样的记录
        return MenuModel.objects.exclude(status=9).filter(pid=id).exists()